USE [msdb];
GO

BEGIN TRANSACTION
	DECLARE @ReturnCode INT = 0;
	IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)
	BEGIN
		EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]';
		IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback;
	END

	DECLARE @jobId BINARY(16);
	EXEC @ReturnCode =  msdb.dbo.sp_add_job @job_name=N'Stop Staggered Index Maintenance', 
			@enabled=1, 
			@notify_level_eventlog=0, 
			@notify_level_email=0, 
			@notify_level_netsend=0, 
			@notify_level_page=0, 
			@delete_level=0, 
			@description=N'Stops the Staggered Index Maintenance job.', 
			@category_name=N'[Uncategorized (Local)]', 
			@owner_login_name=N'sa', @job_id = @jobId OUTPUT;
	IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback;
	
	EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Stop Staggered Index Maintenance', 
			@step_id=1, 
			@cmdexec_success_code=0, 
			@on_success_action=1, 
			@on_success_step_id=0, 
			@on_fail_action=2, 
			@on_fail_step_id=0, 
			@retry_attempts=3, 
			@retry_interval=1, 
			@os_run_priority=0, @subsystem=N'TSQL', 
			@command=N'DECLARE @JobName SYSNAME = N''Staggered Index Maintenance'';
				IF EXISTS(
				  SELECT 1
				  FROM msdb.dbo.sysjobactivity AS sja
				  INNER JOIN msdb.dbo.sysjobs AS sj ON sja.job_id = sj.job_id
				  WHERE sj.name = @JobName
				  AND sja.start_execution_date IS NOT NULL
				  AND sja.stop_execution_date IS NULL
				)
				EXECUTE msdb.dbo.sp_stop_job @JobName;', 
			@database_name=N'master', 
			@flags=0;
	IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback;
		EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1;
	IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback;
		EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)';
	IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback;
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
    IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:
GO